package com.itjiange.rpc.easy.server.impl;

import com.itjiange.rpc.easy.server.MyHttpServer;
import io.vertx.core.Vertx;
import io.vertx.core.http.HttpServer;

/**
 * Vertx web 服务器实现类
 *
 * @author ItJianGe
 * @data 2024/9/3 11:07
 */
public class VertxMyHttpServer implements MyHttpServer {
    @Override
    public void doStart(int port) {

        // 1. 创建 vertx 对象
        Vertx vertx = Vertx.vertx();

        // 2. 创建 http 服务器
        HttpServer httpServer = vertx.createHttpServer();
        // 2.1. 获取请求处理器，处理请求
        httpServer.requestHandler(request -> {
            // 处理 HTTP 请求啦
            System.out.println("【处理 HTTP 请求】请求方法：" + request.method() + " 请求地址：" + request.uri());

            // 发送 HTTP 响应
            request.response()
                    .putHeader("content-type", "text/plain")
                    .end("我接收到请求啦！！！");
        });

        // 3. 监听端口
        httpServer.listen(port)
                .onComplete(res -> {
                    if (res.succeeded()) {
                        System.out.println("【监听端口成功】监听到端口：" + port);
                    } else {
                        System.out.println("【监听端口失败】");
                    }
                });
    }
}
